package com.iot.ic.service;

import java.util.List;
import java.util.Map;

import com.iot.ic.model.RefereeInfo;
import com.iot.ic.model.StadiumResult;





/**
 * Created by xiuge on 2017/2/20.
 */
public interface StadiumResultService {
	
	/**
	  * 开始比赛
	 * @param refereeInfo
	 * @return
	 */
	int startRacing(StadiumResult stadiumResult);
	
	
	/**
	  * 修改赛场成绩信息
	 * @param refereeInfo
	 * @return
	 */
	int updateStadiumResult(StadiumResult stadiumResult);
	
	
	
	/**
	  * 根据ID获得赛场成绩信息
	 * @param refereeInfo
	 * @return
	 */
	StadiumResult getStadiumResult(int stadiumResultId);
	
	
	
	/**
	  * 开始比赛
	 * @param refereeInfo
	 * @return
	 */
	int endRacing(StadiumResult stadiumResult);
	
	
	
	/**
	  * 根据车队获得成绩列表
	 * @param refereeInfo
	 * @return
	 */
	List<StadiumResult> listStadiumResultByTeam(int teamId);
	
	/**
	  * 根据车队获得成绩列表
	 * @param refereeInfo
	 * @return
	 */
	StadiumResult getStadiumResultByTeamAndStadium(int teamId, int stadium);
	
	
	
	/**
	 * 根据车队获得最终成绩
	 * @param stadiumId
	 * @return
	 */
	Map<String, Object> getStadiumResultByTeam(int teamId, int stadiumResultId);

	/**
	 * 获取某一年的比赛成绩列表
	 * @param year
	 * @return
     */
	List<Map<String,Object>> getStadiumResultByYear(int year);

	/**
	 * 根据参赛队伍获取带违规扣分列表的赛场得分详情
	 * @param teamId
	 * @return
     */
	List<StadiumResult> getStadiumResultWithScenesResult(int teamId);
	
	
	/**
	 * 根据参赛队伍获取带违规扣分列表的赛场得分详情
	 * @param teamId
	 * @return
     */
	StadiumResult getStadiumResultWithScenesResult(int teamId, int stadiumId);

	/**
	 * 获取某一年的比赛成绩详情列表
	 * @param year
	 * @return
	 */
	List<Map<String, Object>> getStadiumResultDetailByYear(int year);
	
	
	/**
	 * 获取某一年的比赛成绩详情列表
	 * @param year
	 * @return
	 */
	List<Map<String, Object>> getStadiumResultDetailByStadiumType(int stadiumType);

	/**
	 * 更新赛场得分
	 * @param stadiumResultId
	 * @param scoreChange
     * @return
     */
	int updateStadiumResult(int stadiumResultId, int scoreChange, int scenesScoreChange, int roadScoreChange);
	
	
	
	/**
	 * 根据车队获得最近一条比赛结果信息
	 * @param teamId
	 * @return
	 */
	StadiumResult getStadiumResultLeastByTeamId(int teamId);

}
